home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
ada
/
anna.txt
< prev
next >
Wrap
Text File
|
1993-07-14
|
10KB
|
266 lines
This document introduces the language and the current tool status and
availability. If you have any further questions, please don't
hesitate to contact us at the addresses given in the "Support" section
of this document.
Information on Anna and the Anna Tools
--------------------------------------
Introduction
------------
Anna is a language extension of Ada to include facilities for formally
specifying the intended behavior of Ada programs. It is designed to
meet a perceived need to augment Ada with precise machine-processable
annotations so that well-established formal methods of specification
and documentation can be applied to Ada programs.
Language
--------
The Anna language is described in many documents. There are two
readily available sources of information on the language. One is the
Springer-Verlag Anna Reference Manual, volume 260 of the Lecture Notes
in Computer Science series. The primary author is David C. Luckham.
This manual may be purchased at any computer bookstore, and is
probably available in any mathematical reference library.
An introductory text on using Anna is available, published by Springer
Verlag in their _Silver series_, Texts and Monographs in Computer
Science. The title of this book is _Programming with Specifications:
An Introduction to ANNA, A Language for Specifying Ada Programs_, by
David C. Luckham.
Various aspects of the Anna language and Anna tools have been
documented in technical reports and published papers. See the
bibliography for a complete list of applicable documents.
Anna Tools
----------
The Program and Analysis Group at Stanford University has developed a
prototype environment supporting the Anna language. The first release
of this environment, Anna-I, is available to anyone who wishes to
experiment with it. The tools implement a large subset of the Ada and
Anna languages. These tools include:
-- Intermediate Representation Toolkit (Extended DIANA Formal
Interface and Implementation packages (AST), Ada/Anna
Parser, Ada/Anna Pretty Printer, AST Disk <==> Memory
package)
-- Ada/Anna Static-Semantic Rules Checker
-- Annotation Transformer
-- Portable Ada/Anna Testing and Debugging System
-- Ada/Anna AST Browser
-- Ada Logic Reasoning System (a PROLOG interface)
-- Anna Package Specification Analyzer
-- Anna Interactive Tutorial System
The Anna-I tools are completely implemented in Ada, though a small
amount of X-Windows and Verdix VADS dependency exist in some of the
user-interfaces.
The AST IR interface defines the common internal representation used
by all the Anna-I tools---routines are exported that allow traversal
and data manipulation of an AST. The Parser parses Anna text files
into the AST representation. The Pretty Printer generates ASCII text
given an AST. The AST Disk <==> Memory package performs AST
disk-to-memory conversions, and vice versa.
The Semantic Checker checks the static-semantics of the Ada and Anna
code in the AST: it works in both batch and incremental modes.
The Annotation Transformer maps an Anna program to an equivalent Ada
program. That is, the Transformer replaces Anna constructs with Ada
checking constructs in order to build a self-checking program. The
Testing and Debugging system can then be used to monitor the run-time
behavior of the transformed program. Currently, the Testing and
Debugging system is provided with a small, command-line interface, and
for some releases, an X-Windows and Emacs editor interface.
The AST Browser is an X-Windows based tool for graphically traversing
and examining an Anna AST.
The Ada Logic system is an Ada package which is an interface to a
Prolog interpreter. It allows the user to build clauses and databases
of knowledge, and make queries with respect to the databases.
The Specification Analyzer is an interactive tool for examining and
debugging the visible part of an Ada/Anna package specification using
deduction and symbolic execution.
The Anna Interactive Teaching Tutorial is an interactive tutorial for
Anna. It is designed to familiarize the user with basic Anna concepts
and language facilities. Several ``hands-on'' exercises are included.
Anna Teach automatically invokes other Anna tools and the Ada compiler
to check the correctness of exercises entered by the user.
We are currently developing other Anna-I tools that include:
-- Parallel Testing and Debugging System (for Sequent
Symmetry)
-- more robust incremental semantics capabilities for Ada and Anna
FTP Availability
----------------
Anonymous FTP for the Anna-I environment and various Anna papers are
available on the Internet host ``anna.stanford.edu'' [36.14.0.13].
The file ``pub/anna/read.me'' in this FTP account has more details;
please read this document before transferring any other files.
Also, if you do acquire the Anna tools via FTP, please let us know; we
like to keep track of who is using the tools, and how.
Acquiring the Anna-I Tools
--------------------------
If the FTP acquisition method is not a viable option, you may obtain
an Anna-I release through postal mail.
The Anna-I release requires two 9-track, 6250-bpi magnetic tapes (one
for the Anna-I tools and one for the X-Windows interface used by the
Anna-I tools). It includes the ``Anna-I Installation Guide and User's
Manual.'' To obtain an Anna-I release, please send us tapes and a
self-addressed, stamped, return package with applicable postage to:
Stanford Anna Team
Computer Systems Lab, ERL 456
Stanford University
Stanford, CA 94305
NOTE: Include enough postage to cover the cost of sending the magnetic
tape(s) plus a 75 page document.
Most of the Anna tools rely on the use of the Verdix VADS compiler.
We do not have source code for any other compiler. However, we are
available to answer any questions you might have about porting the
Anna-I toolset.
If you would like a pre-compiled release of the Anna-I tools, we have
releases available for the following systems:
-- Sun/4 UNIX version 4.1.2, SunAda 1.1 Ada compiler
-- Sequent Symmetry DYNIX (i386), SLI/Verdix VADS 5.5.2 Ada
compiler
Due to the considerable time and resources required to produce a
pre-compiled Anna-I release, as well as the limited hardware we have,
we are only currently able to produce pre-compiled releases in these
two formats. We do not have a VAX/VMS system so we cannot provide any
VAX/VMS tape format pre-compiled release of the Anna-I tools.
Support
-------
Support for learning Anna and the tool set is very limited. A short
one-day tutorial course will soon be available at a fee. Contact us
for details regarding Anna language and tools support.
An Anna User's Group is now being supported through Internet
electronic mail. Announcements of new releases, new tools, bug fixes,
etc. will be posted through this medium. To obtain information about
being added to the list, please contact us as the following address,
phone, or electronic mail:
Stanford Anna Team
Computer Systems Lab, ERL 456
Stanford University
Stanford, CA 94305
(415) 723-1175 (voice)
(415) 725-7398 (fax)
anna-request@anna.stanford.edu
Bibliography
------------
_Reference Manual for the Ada Programming Language_.
U. S. Department of Defense, U. S. Government Printing Office,
ANSI/MIL-STD-1815A edition, January 1983.
Douglas L. Bryan and Geoffrey O. Mendal.
_Exploring Ada, Volume 1_.
Prentice-Hall, Englewood Cliffs, New Jersey, 1989.
G. Goos, W. A. Wulf, A. Evans Jr., and K. J. Butler.
_DIANA, An Intermediate Language for Ada_.
Volume 161 of _Lecture Notes in Computer Science_,
Springer-Verlag, 1983.
D.C. Luckham, Randall Neff, and David Rosenblum.
_An Environment for Ada Software Development Based on Formal
Specification_.
Technical Report CSL-TR-86-305, Stanford University, August 1986.
Also published as an article in Ada Letters, VII(3):94--106,
May/June 1987.
David Luckham, Sriram Sankar, and Shuzo Takahashi.
_Two Dimensional Pinpointing: An Application of Formal
Specification to Debugging Packages_.
Technical Report CSL-TR-89-379, Stanford University, April 1989.
Also published as an article in IEEE Software, 8(1):74--84,
January 1991.
David C. Luckham.
_Programming with Specifications: An Introduction to ANNA,
A Language for Specifying Ada Programs_.
_Texts and Monographs in Computer Science_, Springer-Verlag,
October 1990, 412 pages.
David C. Luckham, Friedrich W. von Henke, Bernd Krieg-Brueckner, and Olaf
Owe.
_ANNA, A Language for Annotating Ada Programs_.
Volume 260 of _Lecture Notes in Computer Science_, Springer-Verlag,
1987.
Geoffrey O. Mendal.
Designing for Ada reuse: A case study.
In _IEEE Computer Society Second International Conference on Ada
Applications and Environments_, pages 33--42, IEEE Computer Society, Miami
Beach, Florida, 8-10 April 1986.
Also published as a Stanford University Technical Report, June 1986,
CSL-86-299.
Geoffrey O. Mendal et al.
_The Anna-I User's Guide and Installation Manual_.
Stanford University, Computer Systems Lab, ERL 456, Stanford, California,
version 1.5 edition, December 1992.
Randall Neff.
_Ada/Anna Specification Analysis_.
PhD thesis, Stanford University, Stanford, California, December 1989.
Also published as a Stanford University technical report, CSL-TR-89-406.
David S. Rosenblum.
_A Methodology for the Design of Ada Transformation Tools in a
DIANA Environment_.
Technical Report 85-269, Stanford University, February 1985.
Also published in IEEE Software, 2(2):24--33, March 1985.
David Rosenblum, Sriram Sankar, and David C. Luckham.
_Concurrent Runtime Checking of Annotated Ada Programs_.
Technical Report CSL-TR-86-312, Stanford University, November 1986.
Also published in the _Proceedings of the 6th Conference on
Foundations of Software Technology and Theoretical Computer
Science_, Volume 241 of _Lecture Notes in Computer Science_,
Springer-Verlag, 1986.
Sriram Sankar.
_Automatic Runtime Consistency Checking and Debugging of Formally
Specified Programs_.
PhD thesis, Stanford University, Stanford, California, July 1989.
Also published as a Stanford University Technical Report, August 1989,
CSL-TR-89-391.
Sriram Sankar and David Rosenblum.
_The Complete Transformation Methodology for Sequential Runtime
Checking of An Anna Subset_.
Technical Report CSL-86-301, Stanford University, June 1986.